Один из самых важных файлов в вашей установке WordPress — это файл wp-config.php. Этот файл находится в корневом каталоге вашего WordPress (или на 1 уровень выше, в некоторых случаях) и содержит основные данные конфигурации вашего веб-сайта, например информацию о подключении к базе данных.
Когда вы впервые загружаете архив WordPress, файл wp-config.php в нём отсутствует. В процессе установки WordPress будет создан файл wp-config.php на основе предоставленной вами информации.
Вы можете вручную создать файл wp-config.php, найдя образец файла с именем wp-config-sample.php (расположенный в корневом каталоге установки), отредактировав его по мере необходимости, а затем сохранив как wp-config.php.
Внимание: содержимое файла wp-config-sample.php находится в строго определенном порядке. Порядок имеет значение. Если у вас уже есть файл wp-config.php, изменение его содержимого может привести к ошибкам в вашем блоге.
Чтобы изменить файл wp-config.php для вашей установки, вам понадобится следующая информация:
Database Name – Имя базы данных, используемое WordPressDatabase Username – Имя пользователя, используемое для доступа к базе данныхDatabase Password – Пароль, используемый именем пользователя для доступа к базе данныхDatabase Host – Адрес хоста вашего сервера базы данных. Также может потребоваться номер порта, путь к файлу сокета Unix или конвееру.Если ваш хостинг-провайдер установил для вас WordPress, получите информацию от него. Если вы управляете своим собственным веб-сервером или учетной записью хостинга, эта информация будет у вас в результате создания базы данных и пользователя.
Настройка параметров базы данныхВажно: никогда не используйте текстовый редактор, например Microsoft Word, для редактирования файлов WordPress!
Найдите файл wp-config-sample.php в базовом каталоге вашего каталога WordPress и откройте его в текстовом редакторе.
Стандартный wp-config-sample.phpПримечание. Это пример стандартного wp-config-sample.php. Значения здесь являются примерами, чтобы показать вам, что делать.
// ** MySQL settings - You can get this info from your web host ** ///** The name of the database for WordPress */define( 'DB_NAME', 'database_name_here' );/** MySQL database username */define( 'DB_USER', 'username_here' );/** MySQL database password */define( 'DB_PASSWORD', 'password_here' );/** MySQL hostname */define( 'DB_HOST', 'localhost' );Внимание: Текст внутри /* */ являеться комментариями, только в информационных целях.
Изменение имени базы данныхЗамените «database_name_here» именем своей базы данных, например MyDatabaseName.
define( 'DB_NAME', 'MyDatabaseName' ); // Example MySQL database nameИзменение пользователя базы данныхЗамените «username_here» на имя вашего имени пользователя, например MyUserName.
define( 'DB_USER', 'MyUserName' ); // Example MySQL usernameИзменение пароля базы данныхЗамените «password_here» своим паролем, например MyPassWord.
define( 'DB_PASSWORD', 'MyPassWord' ); // Example MySQL passwordИзменение хоста базы данныхЗамените «localhost» именем хоста вашей базы данных, например MyDatabaseHost. Также может потребоваться номер порта или путь к файлу сокета Unix.
define( 'DB_HOST', 'MyDatabaseHost' ); // Example MySQL Database hostПримечание. Вполне вероятно, что вам НЕ придется его менять. Если вы не уверены, попробуйте установить со значением по умолчанию «localhost» и посмотрите, работает ли это. Если установка не удалась, обратитесь к своему провайдеру веб-хостинга.
Альтернативный порт MySQLЕсли ваш хост использует альтернативный номер порта для вашей базы данных, вам необходимо изменить значение DB_HOST в файле wp-config.php, чтобы отразить альтернативный порт, предоставленный вашим хостом.
Для localhost:
define( 'DB_HOST', 'localhost:3307' );Для указанного сервера:
define( 'DB_HOST', 'mysql.example.com:3307' );Замените 3307 любым номером порта, который вам дает ваш хост.
Сокеты или конвееры MySQLЕсли ваш хост использует сокеты или конвееры Unix, соответственно измените значение DB_HOST в файле wp-config.php.
define( 'DB_HOST', '127.0.0.1:/var/run/mysqld/mysqld.sock' );// or define( 'DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock' );// or define( 'DB_HOST', 'example.tld:/var/run/mysqld/mysqld.sock' );Замените /var/run/mysqld/mysqld.sock информацией о сокете или конвеере, предоставленной вашим хостом.
Возможные значения DB_HOSTРазные хостинговые компании используют разные сетевые настройки для своих баз данных mysql. Обратитесь в службу технической поддержки и/или выполните поиск в документации по вашей хостинг-компании в Интернете.
Кодировка базыDB_CHARSET был сделан доступным для обозначения набора символов базы данных (например, tis620 для TIS620 Thai), который будет использоваться при определении таблиц базы данных MySQL.
Значение по умолчанию utf8 (Unicode UTF-8) почти всегда является лучшим вариантом. UTF-8 поддерживает любой язык, поэтому вы обычно оставляете DB_CHARSET на utf8 и вместо этого используете значение DB_COLLATE для вашего языка.
В этом примере показана кодировка utf8, которая считается значением WordPress по умолчанию:
define( 'DB_CHARSET', 'utf8' );Обычно не должно быть причин для изменения значения DB_CHARSET по умолчанию. Если вашему блогу нужен другой набор символов, прочтите, пожалуйста, «Наборы символов и сопоставления, поддерживаемые MySQL», чтобы узнать допустимые значения DB_CHARSET. ВНИМАНИЕ: Это требует обновления.
Если DB_CHARSET и DB_COLLATE не существуют в вашем файле wp-config.php, НЕ ДОБАВЛЯЙТЕ какое-либо определение в файл wp-config.php, если вы не прочитали и не поняли преобразование наборов символов базы данных. Добавление DB_CHARSET и DB_COLLATE в файл wp-config.php для существующего блога может вызвать серьезные проблемы.
Сопоставление базы данныхDB_COLLATE стал доступным для обозначения параметров cопоставления кодировки базы данных (то есть порядка кодировки набора символов). В большинстве случаев это значение следует оставить пустым (нулевым), чтобы кодировка базы данных была автоматически назначена MySQL на основе набора символов базы данных, указанного в DB_CHARSET. Примером того, когда вам может потребоваться установить «DB_COLLATE» в одно из значений UTF-8, определенных в наборах символов UTF-8 для большинства западноевропейских языков, может быть другой язык, на котором введенные вами символы не являются то же самое, что отображается. (См. также Наборы символов Unicode в Руководстве по SQL)
Значение DB_COLLATE по умолчанию WordPress:
define( 'DB_COLLATE', '' );UTF-8 Unicode Общие параметры кодировки
define( 'DB_COLLATE', 'utf8_general_ci' );UTF-8 Unicode турецкая кодировка
define( 'DB_COLLATE', 'utf8_turkish_ci' );Обычно не должно быть причин для изменения значения DB_COLLATE по умолчанию. Если оставить значение пустым (null), MySQL автоматически назначит сопоставление при создании таблиц базы данных. ВНИМАНИЕ: Это требует обновления
Если DB_COLLATE и DB_CHARSET не существуют в вашем файле wp-config.php, НЕ добавляйте ни одно определение в ваш файл wp-config.php, если вы не прочитали и не поняли преобразование наборов символов базы данных. И вам может потребоваться обновление WordPress.
Ключи безопасностиВам не нужно запоминать ключи, просто сделайте их длинными, случайными и сложными — а еще лучше — используйте онлайн-генератор. Вы можете изменить их в любой момент, чтобы аннулировать все существующие файлы cookie. Это означает, что всем пользователям придется снова войти в систему.
Пример (не используйте их!):
define( 'AUTH_KEY', 't`DK%X:>xy|e-Z(BXb/f(Ur`8#~UzUQG-^_Cs_GHs5U-&Wb?pgn^p8(2@}IcnCa|' );define( 'SECURE_AUTH_KEY', 'D&ovlU#|CvJ##uNq}bel+^MFtT&.b9{UvR]g%ixsXhGlRJ7q!h}XWdEC[BOKXssj' );define( 'LOGGED_IN_KEY','MGKi8Br(&{H*~&0s;{k0Отмена разрешений для файлов по умолчаниюОператоры FS_CHMOD_DIR и FS_CHMOD_FILE позволяют переопределить права доступа к файлам по умолчанию. Эти две переменные были разработаны в ответ на проблему сбоя функции обновления ядра с хостами, работающими под suexec. Если хост использует ограничительные права доступа к файлам (например, 400) для всех пользовательских файлов и отказывается получить доступ к файлам, для которых установлены разрешения группы или общие, эти определения могут решить проблему.
define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) );define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );Пример предоставления setgid:
define( 'FS_CHMOD_DIR', ( 02755 & ~umask() ) );Примечание. «0755» и «02755» — восьмеричные значения. Восьмеричные значения должны иметь префикс 0 и не выделяться одинарными кавычками (‘). См. Также: Изменение прав доступа к файлам
Константы обновления WordPressПримечание. Определите только необходимые константы для исправления проблем с обновлением.
Наиболее частые причины, по которым необходимо их определить:
Хост работает со специальной установкой, включающей символические ссылки. Возможно, вам потребуется определить константы, относящиеся к пути (FTP_BASE, FTP_CONTENT_DIR и FTP_PLUGIN_DIR). Часто достаточно простого определения базы.
Некоторые установки PHP поставляются с расширением PHP FTP, несовместимым с определенными FTP-серверами. В этих редких ситуациях вам может потребоваться определить FS_METHOD как «ftpsockets».
Следующие допустимые константы для обновлений WordPress:
FS_METHOD принудительно использует метод файловой системы. Это должно быть только «direct», «ssh2», «ftpext» или «ftpsockets». Как правило, вам следует изменять это только при возникновении проблем с обновлением. Если вы измените его, и это не поможет, поменять обратно/удалить. В большинстве случаев установка ftpsockets будет работать, если автоматически выбранный метод не работает.. (Основная настройка) “direct” принудительно устанавливает, чтобы использовать Прямые запросы ввода/вывода Файла изнутри PHP, это чревато открытием вопросов безопасности на плохо конфигурировавших серверах. Это выбирается автоматически при поддержке сервера.(вторая настройка) “ssh2” должен вызвать использование SSH PHP Расширение если оно установлено(третья настройка) “ftpext” заключается в принудительном использовании расширения FTP PHP для доступа к FTP и, наконец,(четвертая настройка) “ftpsockets” использует класс сокетов PHP для доступа по FTP. FTP_BASE — это полный путь к «корневой» (ABSPATH) папке установки WordPress.FTP_CONTENT_DIR — это полный путь к папке wp-content установки WordPress.FTP_PLUGIN_DIR — это полный путь к папке плагинов установки WordPress.FTP_PUBKEY — это полный путь к вашему публичному ключу SSH.FTP_PRIKEY — это полный путь к вашему закрытому ключу SSH.FTP_USER это имя пользователя FTP или SSH. Скорее всего, это одно и то же, но используйте тот, который подходит для того типа обновления, которое вы хотите сделать.FTP_PASS пароль для имени пользователя, введенного для FTP_USER. Если вы используете аутентификацию с открытым ключом SSH, это можно не указывать.FTP_HOST это комбинация имя хоста: порт для вашего SSH/FTP-сервера. Если порт FTP по умолчанию — 21, а порт SSH по умолчанию — 22. В этом нет необходимости.FTP_SSL TRUE для SSL-соединения если поддерживается нижележащим транспортом (доступно не на всех серверах). Это для «Безопасного FTP», а не для SSH SFTP.define( 'FS_METHOD', 'ftpext' );define( 'FTP_BASE', '/path/to/wordpress/' );define( 'FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/' );define( 'FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/' );define( 'FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub' );define( 'FTP_PRIKEY', '/home/username/.ssh/id_rsa' );define( 'FTP_USER', 'username' );define( 'FTP_PASS', 'password' );define( 'FTP_HOST', 'ftp.example.org' );define( 'FTP_SSL', false );Некоторые конфигурации должны устанавливать FTP_HOST на localhost, чтобы избежать проблем 503 при попытке обновить плагины или сам WP.
Включение доступа к обновлению по SSHЕсть два способа обновления с использованием SSH2.
Первый — использовать плагин SSH SFTP Updater Support. Второй — использовать встроенное средство обновления SSH2, для которого необходимо установить расширение pecl SSH2.
Чтобы установить расширение pecl SSH2, вам нужно будет ввести команду, подобную следующей, или поговорить с вашим провайдером веб-хостинга, чтобы установить его:
pecl install ssh2После установки расширения pecl ssh2 вам нужно будет изменить конфигурацию PHP для автоматической загрузки этого расширения.
pecl предоставляется пакетом pear в большинстве дистрибутивов Linux. Чтобы установить pecl в Redhat/Fedora/CentOS:
yum -y install php-pearЧтобы установить pecl в Debian/Ubuntu:
apt-get install php-pearРекомендуется использовать закрытый ключ, не защищенный парольной фразой. Было много сообщений о том, что закрытые ключи, защищенные парольной фразой, не работают должным образом. Если вы решите попробовать секретный ключ, защищенный парольной фразой, вам нужно будет ввести парольную фразу для секретного ключа как FTP_PASS или ввести ее в поле «Пароль» представленного поля учетных данных при установке обновлений.
Альтернативный CronМожет возникнуть необходимость использовать альтернативный Cron с WP. Чаще всего это делается, если запланированные публикации не публикуются, как предполагалось. Этот альтернативный метод использует подход перенаправления. Браузер пользователей получает перенаправление, когда cron необходимо запустить, так что они сразу же возвращаются на сайт, в то время как cron продолжает работать в только что отключенном соединении. У этого метода есть определенные риски, поскольку он зависит от не родного сервиса для WordPress.
define( 'ALTERNATE_WP_CRON', true );Отключить Cron и Cron TimeoutПолностью отключите cron, установив для DISABLE_WP_CRON значение true.
define( 'DISABLE_WP_CRON', true );Установить ограничение на запуск процесса cron чаще одного раза в WP_CRON_LOCK_TIMEOUT секунд.
define( 'WP_CRON_LOCK_TIMEOUT', 60 );Дополнительные определяемые константыВот дополнительные константы, которые можно определить. Их, вероятно, не следует устанавливать, если сначала не были опробованы другие методики. Определения файлов cookie могут быть особенно полезны, если у вас необычная настройка домена.
define( 'COOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'home' ) . '/' ) );define( 'SITECOOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'siteurl' ) . '/' ) );define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );define( 'PLUGINS_COOKIE_PATH', preg_replace( '|https?://[^/]+|i', '', WP_PLUGIN_URL ) );define( 'TEMPLATEPATH', get_template_directory() );define( 'STYLESHEETPATH', get_stylesheet_directory() );Очистить корзинуЭта константа контролирует количество дней до того, как WordPress окончательно удалит сообщения, страницы, вложения и комментарии из корзины. По умолчанию 30 дней:
define( 'EMPTY_TRASH_DAYS', 30 ); // 30 днейЧтобы отключить корзину, установите нулевое количество дней.
define( 'EMPTY_TRASH_DAYS', 0 ); // Ноль днейПримечание: WordPress не будет запрашивать подтверждение, когда кто-то нажимает «Удалить навсегда», используя этот параметр.
Автоматическая оптимизация базы данныхСуществует поддержка автоматического восстановления базы данных, которую вы можете включить, добавив следующее определение в файл wp-config.php.
Примечание: это следует включать только при необходимости и отключать после решения проблемы. Если этот параметр включен, пользователю не нужно входить в систему для доступа к функциям, поскольку его основная цель — восстановить поврежденную базу данных, и пользователи часто не могут войти в систему, если база данных повреждена.
define( 'WP_ALLOW_REPAIR', true );Скрипт можно найти по адресу {$your_site}/wp-admin/maint/repair.php.
DO_NOT_UPGRADE_GLOBAL_TABLESОпределение DO_NOT_UPGRADE_GLOBAL_TABLES запрещает dbDelta() и функциям обновления выполнять дорогостоящие запросы к глобальным таблицам.
Сайты с большими глобальными таблицами (в частности, пользователи и мета пользователей), а также сайты, которые используют общие таблицы пользователей с bbPress и другими установками WordPress, могут предотвратить изменение этих таблиц при обновлении, задав для DO_NOT_UPGRADE_GLOBAL_TABLES значение true. Поскольку выполнение ALTER или неограниченного DELETE или UPDATE может занять много времени, крупные сайты обычно не хотят, чтобы они выполнялись при обновлениях, чтобы они могли сделать это самостоятельно. Кроме того, если в установках используются общие таблицы пользователей между несколькими установками bbPress и WordPress, вы можете захотеть, чтобы один сайт был основным при обновлениях.
define( 'DO_NOT_UPGRADE_GLOBAL_TABLES', true );Просмотр всех определенных константВ PHP есть функция, которая возвращает массив всех определенных в настоящее время констант с их значениями.
print_r( @get_defined_constants() );Отключение редактора плагинов и темИногда вы можете отключить плагин или редактор тем, чтобы чрезмерно усердные пользователи не могли редактировать конфиденциальные файлы и, возможно, вывести сайт из строя. Их отключение также обеспечивает дополнительный уровень безопасности, если хакер получает доступ к учетной записи с высокими привилегиями.
define( 'DISALLOW_FILE_EDIT', true );Примечание. На функциональность некоторых плагинов может влиять использование current_user_can('edit_plugins') в их коде. Авторам плагинов следует избегать проверки этой возможности или, по крайней мере, проверять, установлена ли эта константа, и отображать соответствующее сообщение об ошибке. Имейте в виду, что если плагин не работает, это может быть причиной.
Отключить обновление и установку плагинов и темЭто заблокирует пользователям возможность использовать функции установки/обновления плагинов и тем из области администрирования WordPress. Установка этой константы также отключает редактор плагинов и тем (т.е. вам не нужно устанавливать DISALLOW_FILE_MODS и DISALLOW_FILE_EDIT, так как DISALLOW_FILE_MODS будет иметь тот же эффект).
define( 'DISALLOW_FILE_MODS', true );Требовать SSL для администратора и входа в системуПримечание. В WordPress версии 4.0 FORCE_SSL_LOGIN не рекомендуется. Пожалуйста, используйте FORCE_SSL_ADMIN
FORCE_SSL_ADMIN используется, когда вы хотите защитить логины и область администрирования, чтобы пароли и файлы cookie никогда не отправлялись в открытом виде. См. также Administration_Over_SSL для более подробной информации.
define( 'FORCE_SSL_ADMIN', true );Блокировать внешние URL-запросыЗаблокируйте внешние URL-запросы, указав WP_HTTP_BLOCK_EXTERNAL как true, и это позволит делать запросы только localhost и вашему блогу. Константа WP_ACCESSIBLE_HOSTS позволит дополнительным хостам проходить запросы. Формат константы WP_ACCESSIBLE_HOSTS представляет собой список разрешенных имен хостов, разделенных запятыми, поддерживаются домены с подстановочными знаками, например, *.wordpress.org позволит связаться со всеми поддоменами wordpress.org.
define( 'WP_HTTP_BLOCK_EXTERNAL', true );define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );Отключить автообновления WordPressВозможна ситуация, при которой сайт не обновляется автоматически, например настройки или обновления, предоставляемые хостом. Это также можно сделать перед основным выпуском, чтобы дать время для тестирования в среде разработки или промежуточной среде, прежде чем разрешить обновление на рабочем сайте.
define( 'AUTOMATIC_UPDATER_DISABLED', true );Отключить обновления ядра WordPressСамый простой способ управлять обновлениями ядра — использовать константу WP_AUTO_UPDATE_CORE:
# Отключите все основные обновления: define( 'WP_AUTO_UPDATE_CORE', false ); # Включите все основные обновления, включая незначительные и крупные: define( 'WP_AUTO_UPDATE_CORE', true ); # Включить основные обновления для второстепенных выпусков (по умолчанию): define( 'WP_AUTO_UPDATE_CORE', 'minor' );Ссылка: Отключение автообновлений в WordPress 3.7
Очистка при редактировании изображенийПо умолчанию WordPress создает новый набор изображений каждый раз, когда вы редактируете изображение, а когда вы восстанавливаете оригинал, он оставляет все изменения на сервере. Определение IMAGE_EDIT_OVERWRITE как true меняет это поведение. Когда-либо создается только один набор изменений изображения, и когда вы восстанавливаете оригинал, изменения удаляются с сервера.
define( 'IMAGE_EDIT_OVERWRITE', true );Дважды проверьте перед сохранениемОбязательно проверьте наличие начальных и/или конечных пробелов вокруг любого из указанных выше значений, и НЕ удаляйте одинарные кавычки!
Перед сохранением файла обязательно дважды проверьте, не удалили ли вы случайно ни одну из одинарных кавычек вокруг значений параметров. Убедитесь, что после закрывающего тега PHP в файле нет ничего. Последним в файле должно быть ?> и ничего больше. Без пробелов.
Чтобы сохранить файл, выберите File>SaveAs>wp-config.php и сохраните файл в корне установки WordPress. Загрузите файл на свой веб-сервер, и вы готовы к установке WordPress!